
/// ios to flutter
///与 ios SDK   UTEDefine  一一对应
/*!
 *  Step
 *
 *  @discussion NSDictionary value:NSArray.
 *              Data synchronization completed.
 */
const String kUTEQueryRunData = 'kUTEQueryRunData';
/*!
 *  Sleep
 *
 *  @discussion NSDictionary value:NSArray.
 *              Data synchronization completed. All sleep is collected in an array.
 */
const String kUTEQuerySleepData = 'kUTEQuerySleepData';
/*!
 *  Sleep
 *
 *  @discussion NSDictionary value:NSArray.
 *              Data synchronization completed. Sorted out separate sleep data day by day.
 */
const String kUTEQuerySleepDataDayByDay = 'kUTEQuerySleepDataDayByDay';
/*!
 *  Nap
 *
 *  @discussion NSDictionary value:NSArray.
 *              Data synchronization completed.
 */
const String kUTEQuerySiestaData = 'kUTEQuerySiestaData';
/*!
 *  Heart Rate
 *
 *  @discussion NSDictionary value:NSArray.
 *              Data synchronization completed OR Test heart rate completed.
 */
const String kUTEQueryHRMData = 'kUTEQueryHRMData';
/*!
 *  24-Hour Heart Rate
 *
 *  @discussion NSDictionary value:NSArray.
 *              Synchronized 24-hour heart rate data completed.
 *              Required isHas24HourHRM = YES.
 */
const String kUTEQuery24HRMData = 'kUTEQuery24HRMData';
/*!
 *  Blood Pressure
 *
 *  @discussion NSDictionary value:NSArray.
 *              Data synchronization completed OR Test blood pressure completed.
 */
const String kUTEQueryBloodData = 'kUTEQueryBloodData';
/*!
 *  Blood Oxygen
 *
 *  @discussion NSDictionary value:NSArray.
 *              Data synchronization completed OR Test blood oxygen.
 */
const String kUTEQueryBloodOxygenData = 'kUTEQueryBloodOxygenData';
/*!
 *  Device password status
 *
 *  @discussion NSDictionary value:NSString (Converted to NSInteger, corresponding to UTEPasswordState).
 */
const String kUTEPasswordState = 'kUTEPasswordState';
/*!
 *  Walking and running
 *
 *  @discussion NSDictionary value:UTEModelSportWalkRun.
 *              Required parameter isHasWalkRun = YES.
 */
const String kUTEQuerySportWalkRunData = 'kUTEQuerySportWalkRunData';
/*!
 *  Bicycle
 *
 *  @discussion NSDictionary value:UTEModelDeviceBicycle.
 *              Required parameter isHasBicycle = YES.
 */
const String kUTEQuerySportBicycleData = 'kUTEQuerySportBicycleData';
/*!
 *  Swim
 *
 *  @discussion NSDictionary value:UTEModelSportSwim.
 *              Required parameter isHasSwim = YES.
 */
const String kUTEQuerySportSwimData = 'kUTEQuerySportSwimData';
/*!
 *  Rope Skipping
 *
 *  @discussion NSDictionary value:UTEModelSportSkip.
 *              Required parameter isHasSkip = YES.
 */
const String kUTEQuerySportSkipData = 'kUTEQuerySportSkipData';
/*!
 *  TableTennis
 *
 *  @discussion NSDictionary value:UTEModelDeviceTableTennis.
 *              Required parameter isHasTableTennis = YES.
 */
const String kUTEQuerySportTableTennisData = 'kUTEQuerySportTableTennisData';
/*!
 *  Badminton
 *
 *  @discussion NSDictionary value:UTEModelDeviceBadminton.
 *              Required parameter isHasBadminton = YES.
 */
const String kUTEQuerySportBadmindonData = 'kUTEQuerySportBadmindonData';
/*!
 *  Tennis
 *
 *  @discussion NSDictionary value:UTEModelDeviceTableTennis.
 *              Required parameter isHasTennis = YES.
 */
const String kUTEQuerySportTennisData = 'kUTEQuerySportTennisData';
/*!
 *  UV
 *
 *  @discussion NSDictionary value:NSNumber.
 */
const String kUTEQueryUVData = 'kUTEQueryUVData';
/*!
 *  GPS
 *
 *  @discussion NSDictionary value:NSArray.
 *              Data synchronization completed.
 */
const String kUTEQueryGPSData = 'kUTEQueryGPSData';
/*!
 *  New firmware version available
 *
 *  @discussion NSDictionary value:NSNumber(numberWithBool).
 *              if NSNumber is YES,Indicates that the device must be upgraded.Because the device has a serious bug.
 */
const String kUTEForceUpdateFirmware = 'kUTEForceUpdateFirmware';
/*!
 *  New firmware information
 *
 *  @discussion NSDictionary value:UTEModelFirmwareInfo.
 */
const String kUTEUpdateFirmwareInfo = 'kUTEUpdateFirmwareInfo';
/*!
 *  Barometric pressure
 *
 *  @discussion NSDictionary value:NSArray.
 */
const String kUTEQueryBarometricData = 'kUTEQueryBarometricData';
/*!
 *  BodyFat
 *
 *  @discussion NSDictionary value:NSArray.
 */
const String kUTEQueryBodyFatData = 'kUTEQueryBodyFatData';
/*!
 *  ECG
 *
 *  @discussion value:NSArray During the test.
 *              value:UTEModelDeviceECG  During the test have Heart rate value.
 *              value:UTEModelDeviceECG  Test completed.
 *
 *              value:@[model,model,model...]  synchronization completed.
 *              And the last model is the analysis result, if last model.valid=NO, Please don't save data.
 *
 */
const String kUTEQueryECGData = 'kUTEQueryECGData';
/*!
 *  Exercise with heart rate recording
 *
 *  @discussion NSDictionary value:UTEModelSportHRMData.
 *              Required parameter isHasSportHRM = YES.
 */
const String kUTEQuerySportHRMData = 'kUTEQuerySportHRMData';
/*!
 *  Headset
 *
 *  @discussion NSDictionary value:UTEModelSportHeadsetData.
 *              Required parameter isHasHeadsetHRM = YES.
 */
const String kUTEQuerySportHeadsetData = 'kUTEQuerySportHeadsetData';
/*!
 *  Headset click event
 *
 *  @discussion NSDictionary value:UTEModelSportHeadsetData.
 *              Required parameter isHasHeadsetHRM = YES.
 */
const String kUTEQuerySportHeadsetDataOnClick = 'kUTEQuerySportHeadsetDataOnClick';
/*!
 *  Body Temperature
 *
 *  @discussion NSDictionary value:NSArray
 *              Required parameter isHasBodyTemperature = YES.
 */
const String kUTEQueryBodyTemperature = 'kUTEQueryBodyTemperature';
/*!
 *  Respiration Rate
 *
 *  @discussion NSDictionary value:NSArray.
 *              Data synchronization completed OR Test respiration.
 */
const String kUTEQueryRespirationData = 'kUTEQueryRespirationData';
/*!
 *  Daily history of UTEGoalType
 *
 *  @discussion NSDictionary value:NSArray
 */
const String kUTEQueryGoalHistory = 'kUTEQueryGoalHistory';
/*!
 *  Mood, Pressure and Fatigue
 *
 *  @discussion NSDictionary value:NSArray
 *              Required parameter isHasMPF = YES.
 */
const String kUTEQueryMPF = 'kUTEQueryMPF';
/*!
 *  Get the error provided by the mobile phone system, not the error defined by the SDK.
 *  @discussion NSDictionary value:NSError.
 */
const String kSystemError = 'kSystemError';
/*!
 *  A common key
 *  NSDictionary value:id
 */
const String kUTECommonData = 'kUTECommonData';

/*!
 *  @enum UTEOption
 *
 *  @discussion Set device information
 *
 *  @constant UTEOptionSyncAllStepsData      If isHasDataStatus=YES ,please invoke syncDataCustomTime:type:
 *  @constant UTEOptionSyncAllSleepData      If isHasDataStatus=YES ,please invoke syncDataCustomTime:type:
 *  @constant UTEOptionSyncAllHRMData        If isHasDataStatus=YES ,please invoke syncDataCustomTime:type:
 *  @constant UTEOptionSyncAllBloodData      If isHasDataStatus=YES ,please invoke syncDataCustomTime:type:
 *  @constant UTEOptionSyncAllBloodOxygenData  Unspport syncDataCustomTime:type:
 *  @constant UTEOptionSyncAllRespirationData  Unspport syncDataCustomTime:type:

 *  @constant UTEOptionSyncBicycleData       If isHasDataStatus=YES ,please invoke syncDataCustomTime:type:
 *                                           If isHasSportHRM=YES ,please invoke syncUTESportModelCustomTime:

 *  @constant UTEOptionSyncBarometricData
 *  @constant UTEOptionSyncBodyFat           If isHasDataStatus=YES ,please invoke syncDataCustomTime:type:
 *  @constant UTEOptionSyncECG               The device saves only one offline test data
 *
 *  @constant UTEOptionIncall                Incoming call command: When the mobile phone calls, when this value is called,the device will vibrate 10 times, once every 1 second.If isHasSocialNotification = Yes OR isHasSocialNotification2 = Yes , please invoke setUTERemindApp: ,do not use setUTEOption:
 *
 *  @constant UTEOptionDeleteGPSData         Delete GPS data saved by the device.
 *                                           It is recommended to invoke this value after the GPS data is synchronized.Otherwise, too much GPS data will cause the device's GPS data to synchronize slowly.
 *
 *  @constant UTEOptionHangup                Hang up the phone OR Connect the call: invoke this value, the device will immediately stop shaking
 *  @constant UTEOptionFindBand              Find device: device shakes 2 times, 1 time per second
 *  @constant UTEOptionSyncTime              Keep the phone time the same as device time
 *  @constant UTEOptionReadDevicesBattery

 *  @constant UTEOptionHeartDetectingStart
 *  @constant UTEOptionHeartDetectingStop
 *
 *  See UTEModelDevices.isSwitchHeart UTEModelDevices.isHasHRMautoSwitch, Decide whether these two enumerations are valid.
 *  @constant UTEOptionHeartSwitchDynamic    Heart rate dynamic mode.When testing heart rate, the device does not stop testing automatically
 *  @constant UTEOptionHeartSwitchStatic     Heart rate static mode.When testing heart rate,the device automatically stops when it detects a heart rate value

 *  @constant UTEOptionOpen24HourHRM         Turn on device heart rate test(Heart rate monitoring throughout the day, one data every 10 minutes). Required isHas24HourHRM = YES
 *  @constant UTEOptionClose24HourHRM        Turn off device heart rate test. Required isHas24HourHRM = YES

 *  @constant UTEOptionUnitInch              Units are imperial and pound(lbs)  (Compatible with older devices,no longer used)
 *  @constant UTEOptionUnitMeter             Units are metric and kilogram     (Compatible with older devices,no longer used)
 *  @constant UTEOptionUnitInch_12           Units are imperial and pound(lbs)、12-hour time(AM,PM)
 *  @constant UTEOptionUnitInch_24           Units are imperial and pound(lbs)、24-hour time
 *  @constant UTEOptionUnitMeter_12          Units are metric and kilogram 、12-hour time(AM,PM)
 *  @constant UTEOptionUnitMeter_24          Units are metric and kilogram 、24-hour time



 *  If isHasSocialNotification = Yes OR isHasSocialNotification2 = Yes OR isHasIconANCS = Yes
 *  please invoke setUTERemindApp: ,do not use setUTEOption:
 *
 *  @constant UTEOptionOpenRemindIncall      Required isHasExtra = YES （if isRKDevices = YES,no need to consider parameter 'isHasExtra'）
 *  @constant UTEOptionOpenRemindQQ          Required isHasExtra = YES （if isRKDevices = YES,no need to consider parameter 'isHasExtra'）
 *  @constant UTEOptionOpenRemindWeixin      Required isHasExtra = YES （if isRKDevices = YES,no need to consider parameter 'isHasExtra'）
 *  @constant UTEOptionOpenRemindSms         Required isHasExtra = YES （if isRKDevices = YES,no need to consider parameter 'isHasExtra'）
 *  @constant UTEOptionOpenRemindMore        Required isHasExtra = YES （if isRKDevices = YES,no need to consider parameter 'isHasExtra'）
 *
 *  @constant UTEOptionCloseRemindIncall     Required isHasExtra = YES （if isRKDevices = YES,no need to consider parameter 'isHasExtra'）
 *  @constant UTEOptionCloseRemindQQ         Required isHasExtra = YES （if isRKDevices = YES,no need to consider parameter 'isHasExtra'）
 *  @constant UTEOptionCloseRemindWeixin     Required isHasExtra = YES （if isRKDevices = YES,no need to consider parameter 'isHasExtra'）
 *  @constant UTEOptionCloseRemindSms        Required isHasExtra = YES （if isRKDevices = YES,no need to consider parameter 'isHasExtra'）
 *  @constant UTEOptionCloseRemindMore       Required isHasExtra = YES （if isRKDevices = YES,no need to consider parameter 'isHasExtra'）



 *  @constant UTEOptionOpenCameraMode        Open Device camera mode:Every 3 shakes of the device, the delegate uteManagerTakePicture will be invoked.
 *  @constant UTEOptionCloseCameraMode       Close Device camera mode:Device may not count steps if do not close the camera mode.
 *
 *  @constant UTEOptionDeleteDevicesAllData  Delete all data from the device(Reset everything on the device)

 *  @constant UTEOptionDeviceHorizontal      Set the device display orientation to landscape
 *  @constant UTEOptionDeviceVertical        Set device display orientation to portrait
 *
 *  @constant UTEOptionBloodDetectingStart
 *  @constant UTEOptionBloodDetectingStop
 *
 *  @constant UTEOptionBloodOxygenDetectingStart
 *  @constant UTEOptionBloodOxygenDetectingStop
 *
 *  @constant UTEOptionReadDisplaySize       Query device screen resolution and number of screens
 *
 *  @constant UTEOptionSyncSkipData          If isHasSportHRM=YES ,please invoke syncUTESportModelCustomTime:
 *  @constant UTEOptionSyncSwimData          If isHasSportHRM=YES ,please invoke syncUTESportModelCustomTime:
 *
 *  @constant UTEOptionReadBaseStatus        Query the current state of the device is recording the number of steps or recording sleep
 *
 *  @constant UTEOptionDetectUV
 *  @constant UTEOptionFindPhoneFunctionOpen   Device 'find phone' function open (see delegate uteManageTouchDeviceReceiveData)
 *  @constant UTEOptionFindPhoneFunctionClose  Device 'find phone' function close




 *  1、If one of the following sports is turned on, you should turn it off before turning on the other.
 *  2、If isHasSportHRM=YES, please invoke method setUTESportModel: to OPEN or CLOSE ,do not use setUTEOption: .
 *
 *  @constant UTEOptionOpenBicycle
 *  @constant UTEOptionCloseBicycle
 *  @constant UTEOptionOpenSwim
 *  @constant UTEOptionCloseSwim
 *  @constant UTEOptionOpenSkip
 *  @constant UTEOptionCloseSkip
 *
 *  @constant UTEOptionOpenTableTennis
 *  @constant UTEOptionCloseTableTennis
 *  @constant UTEOptionOpenBadminton
 *  @constant UTEOptionCloseBadminton
 *  @constant UTEOptionOpenTennis
 *  @constant UTEOptionCloseTennis
 *
 *  @constant UTEOptionSyncBallData          Sync Ball Data(TableTennis、Badminton、Tennis)
                                             If isHasDataStatus=YES ,please invoke syncDataCustomTime:type:
                                             If isHasSportHRM=YES ,please invoke syncUTESportModelCustomTime:


 *  @constant UTEOptionHRMCalibrateStart          Start the calibration heart rate
 *  @constant UTEOptionHRMCalibrateDefault        Restore Defaults
 *  @constant UTEOptionRaiseHandCalibrateStart    Start calibration 'Raise your hand and the screen will light up'
 *  @constant UTEOptionRaiseHandCalibrateDefault  Restore Defaults
 *
 *  @constant UTEOptionShutdown              Required isHasShutdown=Yes
 *
 *  @constant UTEOptionResetBodyTemperature  Reset temperature calibration value
 *  @constant UTEOptionClearBodyTemperature  Delete all temperature records
 *
 */
enum YJSDKUTEOption {
  yjUTEOptionSyncAllStepsData,///0
  yjUTEOptionSyncAllSleepData,///1
  yjUTEOptionSyncAllHRMData,///2
  yjUTEOptionSyncAllBloodData,///3
  yjUTEOptionSyncAllBloodOxygenData,///4
  yjUTEOptionSyncAllRespirationData,///5
  yjUTEOptionSyncBicycleData,///6
  yjUTEOptionSyncBarometricData,///7
  yjUTEOptionSyncBodyFat,///8
  yjUTEOptionSyncECG,///9
  yjUTEOptionIncall,///10
  yjUTEOptionHangup,///11
  yjUTEOptionFindBand,///12
  yjUTEOptionSyncTime,///13
  yjUTEOptionReadDevicesBattery,///14
  yjUTEOptionDeleteGPSData,///15
  yjUTEOptionHeartDetectingStart,///16
  yjUTEOptionHeartDetectingStop,///17
  yjUTEOptionHeartSwitchDynamic,///18
  yjUTEOptionHeartSwitchStatic,///19
  yjUTEOptionOpen24HourHRM,///20
  yjUTEOptionClose24HourHRM,///21
  yjUTEOptionUnitInch,///22
  yjUTEOptionUnitMeter,///23
  yjUTEOptionUnitInch_12,///24
  yjUTEOptionUnitInch_24,///25
  yjUTEOptionUnitMeter_12,///26
  yjUTEOptionUnitMeter_24,///27
  yjUTEOptionOpenRemindIncall,///28
  yjUTEOptionOpenRemindQQ,///29
  yjUTEOptionOpenRemindWeixin,///30
  yjUTEOptionOpenRemindSms,///31
  yjUTEOptionOpenRemindMore,///32
  yjUTEOptionCloseRemindIncall,///33
  yjUTEOptionCloseRemindQQ,///34
  yjUTEOptionCloseRemindWeixin,///35
  yjUTEOptionCloseRemindSms,///36
  yjUTEOptionCloseRemindMore,///37
  yjUTEOptionOpenCameraMode,///38
  yjUTEOptionCloseCameraMode,///39
  yjUTEOptionDeleteDevicesAllData,///40
  yjUTEOptionDeviceHorizontal,///41
  yjUTEOptionDeviceVertical,///42
  yjUTEOptionBloodDetectingStart,///43
  yjUTEOptionBloodDetectingStop,///44
  yjUTEOptionBloodOxygenDetectingStart,///45
  yjUTEOptionBloodOxygenDetectingStop,///46
  yjUTEOptionRespirationDetectingStart,///47
  yjUTEOptionRespirationDetectingStop,///48
  yjUTEOptionReadDisplaySize,///49
  yjUTEOptionSyncSkipData,///50
  yjUTEOptionSyncSwimData,///51
  yjUTEOptionReadBaseStatus,///52
  yjUTEOptionDetectUV,///53
  yjUTEOptionFindPhoneFunctionOpen,///54
  yjUTEOptionFindPhoneFunctionClose,///55
  yjUTEOptionOpenBicycle,///56
  yjUTEOptionCloseBicycle,///57
  yjUTEOptionOpenSwim,///58
  yjUTEOptionCloseSwim,///59
  yjUTEOptionOpenSkip,///60
  yjUTEOptionCloseSkip,///61
  yjUTEOptionOpenTableTennis,///62
  yjUTEOptionCloseTableTennis,///63
  yjUTEOptionOpenBadminton,///64
  yjUTEOptionCloseBadminton,///65
  yjaaa,///66-----------------------------------SDK没有提供未知
  yjUTEOptionOpenTennis,///67
  yjUTEOptionCloseTennis,///68
  yjUTEOptionSyncBallData,///69
  yjUTEOptionHRMCalibrateStart,///70
  yjUTEOptionHRMCalibrateDefault,///71
  yjUTEOptionRaiseHandCalibrateStart,///72
  yjUTEOptionRaiseHandCalibrateDefault,///73
  yjUTEOptionBloodCalibrateStart,///74   //see Enum:UTEDevicesSate UTEDevicesSateBloodCalibrate..
  yjUTEOptionBloodCalibrateStop,///75    //see Enum:UTEDevicesSate UTEDevicesSateBloodCalibrate..
  yjUTEOptionBloodCalibrateReset,///76   //see Enum:UTEDevicesSate UTEDevicesSateBloodCalibrate..
  yjUTEOptionShutdown,///77
  yjUTEOptionResetBodyTemperature,///78
  yjUTEOptionClearBodyTemperature,///79
  //Mood、Pressure and Fatigue, (Which UI to display on the interface of the device)
  yjUTEOptionMPFDetectingStartInMoodUI,///80   //This Option requires access to the server, please ensure that the network is working.
  yjUTEOptionMPFDetectingStartInPressureUI,///81   //please ensure that the network is working.
  yjUTEOptionMPFDetectingStartInFatigueUI,///82   //please ensure that the network is working.
  yjUTEOptionMPFDetectingStop,///83   //please ensure that the network is working.
  yjUTEOptionReboot,///84   //Required isHasReboot=Yes
}
/*!
 *  @enum UTEDevicesSate
 *
 *  @constant UTEDevicesSateConnected
 *  @constant UTEDevicesSateDisconnected          There are errors, please see error.code(UTEErrorCode)
 *  @constant UTEDevicesSateConnectingError       An error occurred during device connection

 *  @constant UTEDevicesSateSyncBegin             Device sync data start
 *  @constant UTEDevicesSateSyncSuccess           Device sync completed
 *  @constant UTEDevicesSateSyncError             There are errors, please see error.code(UTEErrorCode)

 *  @constant UTEDevicesSateHeartDetectingStart
 *  @constant UTEDevicesSateHeartDetectingProcess There will be data during device heart rate detection
 *  @constant UTEDevicesSateHeartDetectingStop
 *  @constant UTEDevicesSateHeartDetectingError   There are errors, please see error.code(UTEErrorCode)
 *  @constant UTEDevicesSateHeartCurrentValue     Device heart rate returns in real time

 *  @constant UTEDevicesSateBloodDetectingStart
 *  @constant UTEDevicesSateBloodDetectingProcess There will be data during device Blood pressure detection
 *  @constant UTEDevicesSateBloodDetectingStop
 *  @constant UTEDevicesSateBloodDetectingError   There are errors, please see error.code(UTEErrorCode)

 *  @constant UTEDevicesSateBloodOxygenDetectingStart
 *  @constant UTEDevicesSateBloodOxygenDetectingProcess There will be data during device Blood Oxygen detection
 *  @constant UTEDevicesSateBloodOxygenDetectingStop    There will be data if device Blood Oxygen test successful
 *  @constant UTEDevicesSateBloodOxygenDetectingError   There are errors, please see error.code(UTEErrorCode)

 *  @constant UTEDevicesSateCheckFirmwareError    Error in firmware check, please see error.code(UTEErrorCode)

 *  @constant UTEDevicesSateUpdateHaveNewVersion  There is a new version of the firmware
 *  @constant UTEDevicesSateUpdateNoNewVersion    No new version of firmware
 *  @constant UTEDevicesSateUpdateBegin           Firmware upgrade begins
 *  @constant UTEDevicesSateUpdateSuccess         Firmware upgrade successful(Device will automatically disconnect, please reconnect)
 *  @constant UTEDevicesSateUpdateError           Firmware upgrade failed, please see error.code(UTEErrorCode)
 *
 *  @constant UTEDevicesSateCardApduError         Device Apdu data interaction failed, please see error.code(UTEErrorCode)
 *
 *  @constant UTEDevicesSatePasswordState         Device password verification status. Please see UTEPasswordState
 *
 *  @constant UTEDevicesSateStep                  The device is in the monitoring step
 *  @constant UTEDevicesSateSleep                 The device is in the monitoring sleep
 *  @constant UTEDevicesSateOther                 Other
 *
 *  @constant UTEDevicesSateUV                    Acquired UV data after device testing is completed
 *
 *  @constant UTEDevicesSateHRMCalibrateStart
 *  @constant UTEDevicesSateHRMCalibrateFail
 *  @constant UTEDevicesSateHRMCalibrateComplete
 *  @constant UTEDevicesSateHRMCalibrateDefault   Heart rate calibration value restored to default

 *  @constant UTEDevicesSateRaiseHandCalibrateStart     (Raise your hand, the screen lights up) Calibration starts
 *  @constant UTEDevicesSateRaiseHandCalibrateFail
 *  @constant UTEDevicesSateRaiseHandCalibrateComplete
 *  @constant UTEDevicesSateRaiseHandCalibrateDefault   Calibration value restored to default

 *  @constant UTEDevicesSateBodyFatStart          Body fat test begins
 *  @constant UTEDevicesSateBodyFatStop
 *  @constant UTEDevicesSateBodyFatStateIn        Device test status. 'Not Wearing' To 'Wearing'
 *  @constant UTEDevicesSateBodyFatStateOut       Device test status. 'Wearing' To 'Not Wearing'
 *  @constant UTEDevicesSateBodyFatComplete       Body fat test completed
 *  @constant UTEDevicesSateBodyFatFail           There are errors. Please see error.code(UTEErrorCode)
 *
 *  @constant UTEDevicesSateECGDetectingStart     ECG test begins
 *  @constant UTEDevicesSateECGDetectingProcess   There will be data during ECG detection
 *  @constant UTEDevicesSateECGDetectingFail      There are errors. Please see error.code(UTEErrorCode)
 *  @constant UTEDevicesSateECGDetectingComplete  ECG completed（Have value）
 *  @constant UTEDevicesSateECGDetectingStatusBothHand     ECG status: Both hands have been placed on the electrodes.
 *  @constant UTEDevicesSateECGDetectingStatusOneHand      ECG status: one of the hands is not placed on the electrode.
 *
 *  @constant UTEDevicesSateBodyTempNormal         The device automatically return data. Required isHasBodyTemperature = YES
 *  @constant UTEDevicesSateBodyTempCurrent        Current body temperature. Required isHasBodyTemperature = YES
 *  @constant UTEDevicesSateBodyTempAlarm          The device issues an alarm for body temperature.
 *
 *  @constant UTEDevicesSateDrop                   The device has been dropped.
 */
enum YJSDKUTEDevicesSate {
  yjUTEDevicesSateConnected,///0
  yjUTEDevicesSateDisconnected,///1
  yjUTEDevicesSateConnectingError,///2
  yjUTEDevicesSateSyncBegin,///3
  yjUTEDevicesSateSyncSuccess,///4
  yjUTEDevicesSateSyncError,///5
  yjUTEDevicesSateHeartDetectingStart,///6
  yjUTEDevicesSateHeartDetectingProcess,///7
  yjUTEDevicesSateHeartDetectingStop,///8
  yjUTEDevicesSateHeartDetectingError,///9
  yjUTEDevicesSateHeartCurrentValue,///10
  yjUTEDevicesSateBloodDetectingStart,///11
  yjUTEDevicesSateBloodDetectingProcess,///12
  yjUTEDevicesSateBloodDetectingStop,///13
  yjUTEDevicesSateBloodDetectingError,///14
  yjUTEDevicesSateBloodOxygenDetectingStart,///15
  yjUTEDevicesSateBloodOxygenDetectingProcess,///16
  yjUTEDevicesSateBloodOxygenDetectingStop,///17
  yjUTEDevicesSateBloodOxygenDetectingError,///18
  yjUTEDevicesSateRespirationDetectingStart,///19
  yjUTEDevicesSateRespirationDetectingProcess,///20
  yjUTEDevicesSateRespirationDetectingStop,///21
  yjUTEDevicesSateRespirationDetectingError,///22
  yjUTEDevicesSateCheckFirmwareError,///23
  yjUTEDevicesSateUpdateHaveNewVersion,///24
  yjUTEDevicesSateUpdateNoNewVersion,///25
  yjUTEDevicesSateUpdateBegin,///26
  yjUTEDevicesSateUpdateSuccess,///27
  yjUTEDevicesSateUpdateError,///28
  yjUTEDevicesSateCardApduError,///29
  yjUTEDevicesSatePasswordState,///30
  yjUTEDevicesSateStep,///31
  yjUTEDevicesSateSleep,///32
  yjUTEDevicesSateOther,///33
  yjUTEDevicesSateUV,///34
  yjUTEDevicesSateHRMCalibrateStart,///35
  yjUTEDevicesSateHRMCalibrateFail,///36
  yjUTEDevicesSateHRMCalibrateComplete,///37
  yjUTEDevicesSateHRMCalibrateDefault,///38
  yjUTEDevicesSateRaiseHandCalibrateStart,///39
  yjUTEDevicesSateRaiseHandCalibrateFail,///40
  yjUTEDevicesSateRaiseHandCalibrateComplete,///41
  yjUTEDevicesSateRaiseHandCalibrateDefault,///42
  yjUTEDevicesSateBodyFatStart,///43
  yjUTEDevicesSateBodyFatStop,///44
  yjUTEDevicesSateBodyFatStateIn,///45
  yjUTEDevicesSateBodyFatStateOut,///46
  yjUTEDevicesSateBodyFatFail,///47
  yjUTEDevicesSateBodyFatComplete,///48
  yjUTEDevicesSateECGDetectingStart,///49
  yjUTEDevicesSateECGDetectingProcess,///50
  yjUTEDevicesSateECGDetectingFail,///51
  yjUTEDevicesSateECGDetectingComplete,///52
  yjUTEDevicesSateECGDetectingStatusBothHand,///53
  yjUTEDevicesSateECGDetectingStatusOneHand,///54
  yjUTEDevicesSateBodyTempNormal,///55
  yjUTEDevicesSateBodyTempCurrent,///56
  yjUTEDevicesSateBodyTempAlarm,///57
  yjUTEDevicesSateDrop,///58
  yjUTEDevicesSateBloodCalibrateStart,///59
  yjUTEDevicesSateBloodCalibrateStop,///60
  yjUTEDevicesSateBloodCalibrateComplete,///61   //have value :dict = @{kUTECommonData:NSData}
  yjUTEDevicesSateBloodCalibrateFail, ///62      //See UTEErrorCode
  yjUTEDevicesSateBloodCalibrateReset,///63
  yjUTEDevicesSateMPFDetectingStart,///64
  yjUTEDevicesSateMPFDetectingStop,///65
  yjUTEDevicesSateMPFDetectingComplete, ///66    // have value :dict = @{kUTEQueryMPF:UTEModelMPFInfo};
  yjUTEDevicesSateMPFDetectingFail,   ///67      //See UTEErrorCode
}





/*!
 *  @enum UTECallBack
 *
 *  @discussion After calling method setUTEOption, if the device receives value, it will feedback to the App.
 */
enum YJSDKUTECallBack {
  yjUTECallBackUnit,///0
  yjUTECallBackInfoHeightWeight,///1
  yjUTECallBackSyncTime,///2
  yjUTECallBackAlarm,///3
  yjUTECallBackOpenRemindIncall,///4
  yjUTECallBackOpenRemindQQ,///5
  yjUTECallBackOpenRemindWeixin,///6
  yjUTECallBackOpenRemindSms,///7
  yjUTECallBackOpenRemindMore,///8
  yjUTECallBackCloseRemindIncall,///9
  yjUTECallBackCloseRemindQQ,///10
  yjUTECallBackCloseRemindWeixin,///11
  yjUTECallBackCloseRemindSms,///12
  yjUTECallBackCloseRemindMore,///13
  yjUTECallBackOpenRemindFacebook,///14
  yjUTECallBackOpenRemindFacebookMessenger,///15
  yjUTECallBackOpenRemindTwitter,///16
  yjUTECallBackOpenRemindWhatsApp,///17
  yjUTECallBackOpenRemindLine,///18
  yjUTECallBackOpenRemindSkype,///19
  yjUTECallBackOpenRemindHangouts,///20
  yjUTECallBackOpenRemindInstagram,///21
  yjUTECallBackOpenRemindYouTube,///22
  yjUTECallBackOpenRemindGmail,///23
  yjUTECallBackOpenRemindSnapchat,///24
  yjUTECallBackOpenRemindPinterest,///25
  yjUTECallBackOpenRemindLinkedIn,///26
  yjUTECallBackOpenRemindTumblr,///27
  yjUTECallBackOpenRemindViber,///28
  yjUTECallBackOpenRemindGooglePlus,///29
  yjUTECallBackOpenRemindFlickr,///30
  yjUTECallBackOpenRemindVK,///31
  yjUTECallBackOpenRemindKaKao,///32
  yjUTECallBackOpenRemindTelegram,///33
  yjUTECallBackOpenRemindTruecaller,///34
  yjUTECallBackOpenRemindPaytm,///35
  yjUTECallBackOpenRemindZalo,///36
  yjUTECallBackOpenRemindImo,///37
  yjUTECallBackOpenRemindMicrosoftTeams,///38
  yjUTECallBackOpenRemindMicrosoftOutlook,///39
  yjUTECallBackOpenRemindSwiggy,///40
  yjUTECallBackOpenRemindZomato,///41
  yjUTECallBackOpenRemindGpay,///42
  yjUTECallBackOpenRemindPhonePe,///43
  yjUTECallBackOpenRemindHotstar,///44
  yjUTECallBackOpenRemindPrimeVideo,///45
  yjUTECallBackOpenRemindFlipkart,///46
  yjUTECallBackOpenRemindAmazon,///47
  yjUTECallBackOpenRemindMyntra,///48
  yjUTECallBackOpenRemindNoiseFit,///49
  yjUTECallBackOpenRemindDailyHunt,///50
  yjUTECallBackOpenRemindInshorts,///51
  yjUTECallBackOpenRemindBookMyShow,///52
  yjUTECallBackOpenRemindAppleCalendar,///53
  yjUTECallBackOpenRemindJioTV,///54
  yjUTECallBackOpenRemindMakeMyTrip,///55
  yjUTECallBackOpenRemindNetflix,///56
  yjUTECallBackOpenRemindOla,///57
  yjUTECallBackOpenRemindFastrackReflex,///58
  yjUTECallBackOpenRemindUber,///59
  yjUTECallBackOpenRemindYTMusic,///60
  yjUTECallBackCloseRemindFacebook,///61
  yjUTECallBackCloseRemindFacebookMessenger,///62
  yjUTECallBackCloseRemindTwitter,///63
  yjUTECallBackCloseRemindWhatsApp,///64
  yjUTECallBackCloseRemindLine,///65
  yjUTECallBackCloseRemindSkype,///66
  yjUTECallBackCloseRemindHangouts,///67
  yjUTECallBackCloseRemindInstagram,///68
  yjUTECallBackCloseRemindYouTube,///69
  yjUTECallBackCloseRemindGmail,///70
  yjUTECallBackCloseRemindSnapchat,///71
  yjUTECallBackCloseRemindPinterest,///72
  yjUTECallBackCloseRemindLinkedIn,///73
  yjUTECallBackCloseRemindTumblr,///74
  yjUTECallBackCloseRemindViber,///75
  yjUTECallBackCloseRemindGooglePlus,///76
  yjUTECallBackCloseRemindFlickr,///77
  yjUTECallBackCloseRemindVK,///78
  yjUTECallBackCloseRemindKaKao,///79
  yjUTECallBackCloseRemindTelegram,///80
  yjUTECallBackCloseRemindTruecaller,///81
  yjUTECallBackCloseRemindPaytm,///82
  yjUTECallBackCloseRemindZalo,///83
  yjUTECallBackCloseRemindImo,///84
  yjUTECallBackCloseRemindMicrosoftTeams,///85
  yjUTECallBackCloseRemindMicrosoftOutlook,///86
  yjUTECallBackCloseRemindSwiggy,///87
  yjUTECallBackCloseRemindZomato,///88
  yjUTECallBackCloseRemindGpay,///89
  yjUTECallBackCloseRemindPhonePe,///90
  yjUTECallBackCloseRemindHotstar,///91
  yjUTECallBackCloseRemindPrimeVideo,///92
  yjUTECallBackCloseRemindFlipkart,///93
  yjUTECallBackCloseRemindAmazon,///94
  yjUTECallBackCloseRemindMyntra,///95
  yjUTECallBackCloseRemindNoiseFit,///96
  yjUTECallBackCloseRemindDailyHunt,///97
  yjUTECallBackCloseRemindInshorts,///98
  yjUTECallBackCloseRemindBookMyShow,///99
  yjUTECallBackCloseRemindAppleCalendar,///100
  yjUTECallBackCloseRemindJioTV,///101
  yjUTECallBackCloseRemindMakeMyTrip,///102
  yjUTECallBackCloseRemindNetflix,///103
  yjUTECallBackCloseRemindOla,///104
  yjUTECallBackCloseRemindFastrackReflex,///105
  yjUTECallBackCloseRemindUber,///106
  yjUTECallBackCloseRemindYTMusic,///107
  yjUTECallBackOpenUnitSitRemind,///108
  yjUTECallBackCloseSitRemind,///109
  yjUTECallBackHeartSwitchDynamic,///110
  yjUTECallBackHeartSwitchStatic,///111
  yjUTECallBackDevicesVersion,///112
  yjUTECallBackDevicesAddress,///113
  yjUTECallBackDeviceHorizontal,///114
  yjUTECallBackDeviceVertical,///115
  yjUTECallBackDeviceSilence,///116
  yjUTECallBackDeviceWeather,///117
  yjUTECallBackDeviceBattery,///118
  yjUTECallBackSwitchHandAndDisplay,///119
  yjUTECallBackWeatherSevenDay,///120
  yjUTECallBackIbeaconOption,///121
  yjUTECallBackMultiLanguage,///122
  yjUTECallBackSiestaSet,///123
  yjUTECallBackSleepNightSet,///124
  yjUTECallBackSleepAdjust,///125
  yjUTECallBackFindPhoneFunctionOpen,///126
  yjUTECallBackFindPhoneFunctionClose,///127
  yjUTECallBackOpenBicycle,///128
  yjUTECallBackCloseBicycle,///129
  yjUTECallBackOpenSwim,///130
  yjUTECallBackCloseSwim,///131
  yjUTECallBackOpenSkip,///132
  yjUTECallBackCloseSkip,///133
  yjUTECallBackOpenTableTennis,///134
  yjUTECallBackCloseTableTennis,///135
  yjUTECallBackOpenBadminton,///136
  yjUTECallBackCloseBadminton,///137
  yjUTECallBackOpenTennis,///138
  yjUTECallBackCloseTennis,///139
  yjUTECallBackOpenCommonHRMAuto,///140
  yjUTECallBackCloseCommonHRMAuto,///141
  yjUTECallBackOpen24HourHRM,///142
  yjUTECallBackClose24HourHRM,///143
  yjUTECallBackCustomUIshow,///144
  yjUTECallBackCustomUIhide,///145
  yjUTECallBackDeleteGPSData,///146
  yjUTECallBackDeviceCustomMsg,///147
  yjUTECallBackResetCalibrateBodyTemp,///148
  yjUTECallBackClearBodyTempData,///149
  yjUTECallBackMenstruationOpen,///150
  yjUTECallBackMenstruationClose,///151
  yjUTECallBackBloodPressureAutoTest,///152
  yjUTECallBackBodyTemperatureAutoTestOpen,///153
  yjUTECallBackBodyTemperatureAutoTestClose,///154
  yjUTECallBackBodyTemperatureSetTestDuration,///155
  yjUTECallBackBodyTemperatureSetAlarm,///156
  yjUTECallBackBodyTemperatureFunction2Open,///157
  yjUTECallBackBodyTemperatureFunction2Close,///158
  yjUTECallBloodOxygenAutoTestOpen,///159
  yjUTECallBloodOxygenAutoTestClose,///160
  yjUTECallBloodOxygenSetTestDuration,///161
  yjUTECallRespirationAutoTestOpen,///162
  yjUTECallRespirationAutoTestClose,///163
  yjUTECallRespirationSetTestDuration,///164
  yjUTECallBackCheckWearFunctionOpen,///165
  yjUTECallBackCheckWearFunctionClose,///166
  yjUTECallMPFAutoTestOpen,///167
  yjUTECallMPFAutoTestClose,///168
  yjUTECallMPFSetTestDuration,///169
  yjUTECallBackDrinkWaterReminderOpen,///170
  yjUTECallBackDrinkWaterReminderClose,///171
  yjUTECallBackHandwashingReminderOpen,///172
  yjUTECallBackHandwashingReminderClose,///173
  yjUTECallSportAlertHRM,///174
  yjUTECallSportTargetDistance,///175
  yjUTECallSportTargetDuration,///176
  yjUTECallSportTargetCalories,///177
  yjUTECallBluetooth3_0Key,///178
}

///  闹钟类型
enum YJSDKUTEAlarmWeek {
  yjSDKUTEAlarmWeekSunday,
  yjSDKUTEAlarmWeekMonday,
  yjSDKUTEAlarmWeekTuesday,
  yjSDKUTEAlarmWeekWednesday,
  yjSDKUTEAlarmWeekThursday,
  yjSDKUTEAlarmWeekFriday,
  yjSDKUTEAlarmWeekSaturday,
}
/// 扩展闹钟类型
extension YJSDKUTEAlarmWeekExtension on YJSDKUTEAlarmWeek{
  int get value => [
    1 << 0,
    1 << 1,
    1 << 2,
    1 << 3,
    1 << 4,
    1 << 5,
    1 << 6,
  ][index];
}